
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

public interface FillFactory {

    FillUtil fillUtil = null;

    static FillUtil getFillUtil() {

        if (fillUtil == null)
            return new FillUtil();
        return fillUtil;
    }

    /**
     * tips 对请求进行参数进行装填-->MAP
     *
     * @Author:hihuzi 2018/6/14 14:51
     */
    Map getParamsToMap(HttpServletRequest request);

    /**
     * tips 对请求进行参数进行装填-->MAP strs 增加或去掉没用的字段
     *
     * @Author:hihuzi 2018/6/14 14:51
     */
    Map getParamsToMap(HttpServletRequest request, String... strs);


    /**
     * tips 对MAP数据装填--> 对象
     *
     * @Author:hihuzi 2018/6/14 14:50
     */
    <T> T getMapToEntity(Map<String, String> maps, T t) throws Exception;

    /**
     * tips 对请求进行参数进行装填--> 对象
     *
     * @Author:hihuzi 2018/6/14 14:50
     */
    <T> T getParamsToEntity(HttpServletRequest request, T t) throws Exception;

    /**
     * tips 对MAP数据装填--> 对象  (key value) -->t
     *
     * @Author:hihuzi 2018/6/14 14:50
     */
    <T> T getMapToEntityDiff(Map map, T t) throws Exception;

    /**
     * tips 对LIST数据装填--> 对象 针对数据库与实体类名有区别 (key value) -->t
     *
     * @Author:hihuzi 2018/6/26 14:51
     */

    <T> List<T> getListToEntitys(List<Map> maps, T t) throws Exception;

    /**
     * tips 对LIST数据装填--> 对象 针对数据库与实体类名有区别 value-->t
     *
     * @Author:hihuzi 2018/6/26 14:51
     */

    <T> List<T> getListToEntity(List<String> list, T t) throws Exception;

}
